1. Field of the Invention
The subject invention relates to hardware-to-hardware data transmission in computer systems. In particular, it relates to method and system for operating I/O adapters attaching computing devices either to an I/O periphery, a network, or other computing devices.
2. Description and Disadvantages of Prior Art
The area of the invention concerns hardware of computer systems and network components. It deals more particularly with a method to improve the performance of I/O adapters and utilisation of adapter-local resources like memory.
As revealed by a first publication of the InfiniBand Architecture (IBA), the prior art of interconnect technologies have failed to keep pace with the current computer evolution and the increased burden imposed on data servers, application processing and enterprise computing created by the popular success of the Internet.
High end computing concepts such as clustering, fail-safe operations, and 24×7 hour availability demand greater capacity to move data between processing nodes as well as between a processor node and I/O devices. These trends require higher bandwidths and lower latencies, they are pushing more functionality down to the I/O adapters, and they are demanding greater protection, higher isolation, deterministic behavior, and a higher quality of service then it is currently available. InfiniBand helps to achieve the above mentioned aims.
The invention can be advantageously applied with this new InfiniBand technology and thus increases speed of technical evolution.
Although the invention has a quite general scope it will be discussed and set out with reference to a specific prior art hardware-to-hardware data transmission in computer systems. This is a communication between a CPU subsystem 8 and a host adapter 18, as depicted in FIG. 1 and explained next below.
Today's computer systems (hosts) have a “dense-packed” CPU-memory-subsystem 8 comprising a plurality of CPUs with caches 10, system memory 12, memory controller 14, interconnect logic, etc. Input/output devices, further referred to herein as I/O devices 16 like storage devices, communication networking devices, inter-system connections, etc. are attached via a so-called I/O or host adapter 18. The host adapter 18 may be connected with some “distance” in terms of access time to the CPU-memory subsystem.
Applications running in the CPUs use specific communication protocols for their connections to said I/O devices 16 and other computer systems accessible via a network.
These protocols, as for example InfiniBand mentioned above, may define that the application can post work requests to the system memory and is enabled to signal the host adapter to process these work requests. This requires, however, that for signaling and control purposes some amount of information has to be transferred from the CPU-memory-subsystem 8 to the host adapter 18. There are protocols which define very complex tasks for the host adapter to execute in order to perform said processing of the work requests. As it is apparent to a person skilled in the art, a multiple queue processing system is used for processing various incoming requests, in-/outbound data traffic associated with work queues, and system control queues.
In prior art there have been two different types of methods to cope with this problem:
With the first type of methods, the I/O adapter 18 is equipped with local memory 20, e.g. implemented on-chip or as separate SRAM/DRAM on card or board. The required control information of the posted work requests is stored in this local memory. During processing, the host adapter 18 has fast access to the required information. This approach performs very well, but there are resource restrictions, for example the relatively small maximum number of postable work requests which prevents this prior art approach from scaling up to larger environments. This is primarily due to size limitations of the local memory 20. A simple up-scaling of the local memory is expensive as it costs too much (e.g. chip area costs or SRAM/DRAM module costs).
With the second type of methods, the I/O adapter is not equipped with local memory. Instead, it contains a small set of registers in logic to hold the required control information of one or more work requests. Processing work requests requires many accesses to system memory. This approach is optimized for cost but would not perform well although it does not imply the resource restrictions of method 1. This approach would be a significant obstacle for implementing a well performing, fabric-based switching technology such as InfiniBand.
It is thus an objective of the invention to overcome the performance/resource restriction problems as outlined above while concurrently being compatible with the switching technology in general.